package unmsm.eapisw.taller.srh_persistencia.modelo;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name ="SRH_HOTEL")
public class Hotel implements Serializable{
	private int id;
	private int categoria;
	private String nombre;
	private byte[] logo;
	private byte[] imagenprincipal;
	private String direccion;
	private String detalleprincipal;
	private int horaentrada;
	private int horasalida;
	private String ciudad;
	private Set<Usuario> usuario = new HashSet<Usuario>(0);
	private Set<TipoHabitacion> tHabitacion = new HashSet<TipoHabitacion>(0);
	
	
	public Hotel() {
	}
	public Hotel(int id) {
		this.id = id;
	}
	
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="IN_IDHOTEL" )
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	
	@Column(name="VC_CIUDAD")
	public String getCiudad() {
		return ciudad;
	}
	public void setCiudad(String ciudad) {
		this.ciudad = ciudad;
	}
	
	@Column(name="IN_CATEGORIA")
	public int getCategoria() {
		return categoria;
	}
	public void setCategoria(int categoria) {
		this.categoria = categoria;
	}
	
	@Column(name="VC_NOMBRE")
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	
	@Column(name="LB_LOGO")
	@Lob
	public byte[] getLogo() {
		return logo;
	}
	public void setLogo(byte[] logo) {
		this.logo = logo;
	}
	
	@Column(name="LB_IMAGENPRINCIPAL")
	@Lob
	public byte[] getImagenprincipal() {
		return imagenprincipal;
	}
	public void setImagenprincipal(byte[] imagenprincipal) {
		this.imagenprincipal = imagenprincipal;
	}
	
	@Column(name="VC_DIRECCION")
	public String getDireccion() {
		return direccion;
	}
	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}
	
	@Column(name="VC_DETALLEPRINCIPAL")
	public String getDetalleprincipal() {
		return detalleprincipal;
	}
	public void setDetalleprincipal(String detalleprincipal) {
		this.detalleprincipal = detalleprincipal;
	}
	
	@Column(name="IN_HORAENTRADA")
	public int getHoraentrada() {
		return horaentrada;
	}
	public void setHoraentrada(int horaentrada) {
		this.horaentrada = horaentrada;
	}
	
	@Column(name="IN_HORASALIDA")
	public int getHorasalida() {
		return horasalida;
	}
	public void setHorasalida(int horasalida) {
		this.horasalida = horasalida;
	}
	
	//@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "usuarioHotel")
	@OneToMany(mappedBy = "usuarioHotel")
	public Set<Usuario> getUsuario() {
		return usuario;
	}
	public void setUsuario(Set<Usuario> usuario) {
		this.usuario = usuario;
	}
	
	@OneToMany(mappedBy = "hotel")
	public Set<TipoHabitacion> gettHabitacion() {
		return tHabitacion;
	}
	
	public void settHabitacion(Set<TipoHabitacion> tHabitacion) {
		this.tHabitacion = tHabitacion;
	}
	
	public void addTHabitacion(TipoHabitacion th){
		tHabitacion.add(th);
	}
}
